<!DOCTYPE html>
<html lang="zh-Hans">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 3.8.0">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/all.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"yoursite.com","root":"/","scheme":"Gemini","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":false,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.xml"};
  </script>

  <meta name="description" content="A Quiet Departure.">
<meta property="og:type" content="website">
<meta property="og:title" content="Feng&#39;s Blog">
<meta property="og:url" content="http://yoursite.com/page/6/index.html">
<meta property="og:site_name" content="Feng&#39;s Blog">
<meta property="og:description" content="A Quiet Departure.">
<meta property="og:locale" content="zh-Hans">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Feng&#39;s Blog">
<meta name="twitter:description" content="A Quiet Departure.">

<link rel="canonical" href="http://yoursite.com/page/6/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : true,
    isPost : false,
    lang   : 'zh-Hans'
  };
</script>

  <title>Feng's Blog</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="Toggle navigation bar">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">Feng's Blog</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="main-menu menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-home fa-fw"></i>Home</a>

  </li>
        <li class="menu-item menu-item-about">

    <a href="/about/" rel="section"><i class="fa fa-user fa-fw"></i>About</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-tags fa-fw"></i>Tags</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-th fa-fw"></i>Categories</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-archive fa-fw"></i>Archives</a>

  </li>
  </ul>
</nav>




</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content index posts-expand">
            
      
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-Hans">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2020/08/28/English时态系列-一般过去时/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="Fengorz">
      <meta itemprop="description" content="A Quiet Departure.">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Feng's Blog">
    </span>
      <header class="post-header">
        <h2 class="post-title" itemprop="name headline">
          
            <a href="/2020/08/28/English时态系列-一般过去时/" class="post-title-link" itemprop="url">English时态系列-一般过去时</a>
        </h2>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">Posted on</span>

              <time title="Created: 2020-08-28 08:43:38" itemprop="dateCreated datePublished" datetime="2020-08-28T08:43:38+08:00">2020-08-28</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">Edited on</span>
                <time title="Modified: 2020-09-08 17:13:45" itemprop="dateModified" datetime="2020-09-08T17:13:45+08:00">2020-09-08</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-folder"></i>
              </span>
              <span class="post-meta-item-text">In</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/English/" itemprop="url" rel="index"><span itemprop="name">English</span></a>
                </span>
            </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
          <blockquote>
<p>这篇笔记摘选自《英语语法新思维初级教程第2版》，以及其他网上知识点收集，只是我自己的个人复习笔记，禁止转载，如有侵权，请联系我删除。</p>
</blockquote>
<h2 id="引言"><a href="#引言" class="headerlink" title="引言"></a>引言</h2><p>据说，在美国的新闻报道中，最精练简明的导语出现在1906年4月的旧金山大地震之时，这个导语是：<br>San Francisco Was<br>这里除了地名San Francisco外，就只有唯一的一个关键词was，通过was表明了这次地震对旧金山所造成的破坏程度——已将其夷为平地，该城市不复存在了。因此，这个导语不妨译成：<br>旧金山已成为过去</p>
<h2 id="基本用法一：过去发生的短暂动作或状态"><a href="#基本用法一：过去发生的短暂动作或状态" class="headerlink" title="基本用法一：过去发生的短暂动作或状态"></a>基本用法一：过去发生的短暂动作或状态</h2><p>一般过去时常表示在过去某一个特定的时间所发生的动作或存在的状态，此时常和表示过去的特定的时间状语连用。这些时间状语有：yesterday, yesterday evening, last night, the night before last（前天晚上）, last year, last spring（去年春天）以及three days/months/years ago等等。注意，这些时间状语之前不需加介词，比如不能说：at last night<em>, in last year</em>或in three years ago*等等。<br>I saw him in the library yesterday morning. 我昨天早上在图书馆看到他了。<br>I bought this computer three years ago. 我3年以前买的这台电脑。<br>是表示过去存在的状态：<br>He was late for school this morning. 他今天早上上学迟到了。<br>I was tired last night, so I went to bed early. 我昨晚感到很累，所以早早地上床睡觉了。<br>图示：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/jCl8Ia.png" alt></p>
<p>I didn’t choose this life; it chose me.<br>这是巴基斯坦反对派领袖、前总理贝·布托（Bhutto）在其回忆录中的一句话。这里虽然没有明确的过去的时间状语，但根据语境判断，是表示过去发生的事件，所以用了一般过去时态。<br>我没有选择这种命运，而是命运选择了我。</p>
<h2 id="基本用法二：过去发生的重复或延续活动"><a href="#基本用法二：过去发生的重复或延续活动" class="headerlink" title="基本用法二：过去发生的重复或延续活动"></a>基本用法二：过去发生的重复或延续活动</h2><p>除了表示短暂动作之外，一般过去时还可以表示过去的一段时间（a specific period of time in the past）内延续或重复的动作，图示为：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/AWxXqn.png" alt><br>I slept for eight hours last night. 我昨晚睡了8个小时。<br>She lived in our town for three years, but now she is living in Beijing.<br>她在我们这个小镇生活了3年，不过她现在住在北京。<br>I lived in the country for ten years. 我在农村生活了10年。</p>
<p>表示过去重复发生的活动：<br>I wrote a letter once a week to my family when I was in my first college year.<br>这里的wrote是表示过去一段期间内不断重复发生的活动。<br>在大一的时候，我通常每个星期给家里写一封信。<br>He used to do morning exercises. 他过去常常晨练。<br>用表格简单地总结如下：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/OQuczd.png" alt></p>
<h2 id="用法比较：一般过去时和现在完成时用于“for-时间段”的区别"><a href="#用法比较：一般过去时和现在完成时用于“for-时间段”的区别" class="headerlink" title="用法比较：一般过去时和现在完成时用于“for+时间段”的区别"></a>用法比较：一般过去时和现在完成时用于“for+时间段”的区别</h2><p>一般过去时态可以与“for+时间段”连用。比如：<br>I slept for eight hours last night. 我昨晚睡了八个小时。<br>He worked in that dot-com company for one year. Now he is studying in America.<br>他在那家网络公司工作过一年，现在在美国上学。</p>
<p>一般过去时表示的延续动作图示如下：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/0oBmFa.png" alt><br>现在完成时表示的延续动作图示如下：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/ldiQ3p.png" alt></p>
<blockquote>
<p>一般过去时与“for+时间段”连用，表示动作在过去已经结束，并没有延续到现在；而现在完成时与“for+时间段”连用，则表明动作延续到现在，并且还有可能延续下去。</p>
</blockquote>
<p>1） She lived in our town for three years.<br>2） She has lived in our town for three years.<br>1） 她在我们小镇生活过三年（但现在不在这里）。<br>2） 她在我们小镇已经生活了三年（现在还在这里）。</p>
<p>表示事件延续到了现在，因此可以在时间状语for three years的后面填上一个now，但对于例句1）则不可以。比如：<br>1） She lived in our town for three years now. *<br>2） She has lived in our town for three years now.</p>
<h2 id="口语用法一：“我不知道”——“I-don’t-know”-or-“I-didn’t-know”"><a href="#口语用法一：“我不知道”——“I-don’t-know”-or-“I-didn’t-know”" class="headerlink" title="口语用法一：“我不知道”——“I don’t know” or “I didn’t know”?"></a>口语用法一：“我不知道”——“I don’t know” or “I didn’t know”?</h2><p>A: Do you see the person with loose pants and long hair? Is it a boy or girl?<br>B: A girl. She is my daughter.<br>A: Oh, please forgive me. I didn’t know you were her mother.<br>B: No, I’m her father.<br>A: 你看见那边那个穿着宽松裤子、留着长发的人了吗？是男的还是女的？<br>B: 是女的。她是我女儿。<br>A: 哦，真对不起，我不知道你是她母亲。<br>B: 不，我是她父亲。</p>
<p>A说“我不知道”的时候其实他已经知道了，因为B已经告诉他“She is my daughter.”了，也就是说，他的真正意思应该是“我刚才不知道”，因此正确的英文应该说成：<br>I didn’t know you were her mother.</p>
<p>下面的短文是讲作者在一次不得已的情况下让一位陌生的邻居格林夫人（Mrs. Green）开车送自己去学校，后来当她知道格林夫人竟是一位癌症患者时，她的内心对此深感不安：<br>Mrs. Green, the woman with cancer. I stood on the stairs, my hand covering my mouth: I had asked a person struggling with cancer to go out in a snowstorm to give me a lift to school. “Oh, Mrs. Green,” I stammered, “I didn’t realize who you were. Please forgive me.”<br>作者在事先不知情的情况下给一位癌症患者带来麻烦，因而感到内疚。但她现在知道真相了。<br>格林夫人——竟是那位患了癌症的女人！我站在楼梯上，手掩着嘴一时说不出话来：我竟然让一个身患癌症的病人冒着暴风雪开车送我去学校！“噢，格林夫人，”我结结巴巴地说道，“我真不知道您就是格林夫人。请原谅我！”</p>
<h2 id="口语用法二：“我忘记了”——“I-forget”-or-“I-forgot”？"><a href="#口语用法二：“我忘记了”——“I-forget”-or-“I-forgot”？" class="headerlink" title="口语用法二：“我忘记了”——“I forget” or “I forgot”？"></a>口语用法二：“我忘记了”——“I forget” or “I forgot”？</h2><p>“我忘记了这个单词的意思”和“我忘记把你的耳机带来”，这两个“忘记”在汉语中丝毫没有区别，但在英文中却是大不相同，即它们发生的时间不一样。“我忘记了这个单词的意思”是“我”现在还不知道；而“我忘记把你的耳机带来”是当“我”想起来之后说的一句话，“忘记”已成为过去。因此，这两句英文要分别说成：<br>I forget the meaning of the word.<br>I forgot to bring your earphone back.</p>
<p>A: I am sorry I forgot to return your physics book last night.<br>B: I’ll forgive you considering the test isn’t until Friday.<br>A：很抱歉，昨晚我忘了还你的那本物理书。<br>B：没关系，因为周五才考试呢。</p>
<p>在汉语中说“我忘记做某事”，英文一般都是说成I forgot to do…，因为这一定是当你想起来之后才能说的一句话，“忘记”已成为过去。<br><strong><em>英文中一般没有使用I forget to do…的语境。</em></strong></p>
<blockquote>
<p>“我忘记”还可以说成It slipped my mind…。</p>
</blockquote>
<p>A: Did you pick up my books from Ron’s house?<br>B: Sorry. It slipped my mind.</p>
<p>A：你是否从罗恩家把我的书捎过来了？<br>B：对不起，我忘记了。</p>
<h2 id="口语用法三：“我以为”——“I-think”-or-“I-thought”？"><a href="#口语用法三：“我以为”——“I-think”-or-“I-thought”？" class="headerlink" title="口语用法三：“我以为”——“I think” or “I thought”？"></a>口语用法三：“我以为”——“I think” or “I thought”？</h2><p>A: I really thought that I’d win the match.<br>B: Oh, well, better luck next time, Henry.<br>A：我（本来）真的以为这个比赛我会赢的。<br>B：哦，没关系，希望你下次好运，亨利。<br>若说成： I really think that I will win the match.（我真的很肯定我会赢得这场比赛。）<br>这就一定是在比赛之前说的话，表明自己很有信心赢得这场比赛。所以，简单来说，I thought是强调“我刚才这么想”，而现实情况往往不同（如上句的I really thought that I’d win the match，即“我本来以为我会赢”，但实际没有赢）。而I think则相当于I have an opinion（我这么认为），表示自己的观点。因此，两者的意思可谓是大相径庭。</p>
<p>再比如目前大学毕业生找工作很难，我们可以说出这样的一句话：<br>开始我以为找工作很容易，但现实情况比我想的还要难。<br>这句话可以这样讲：<br>At first I thought it would be easy to find a job, but the real situation has proved more difficult than I thought.</p>
<blockquote>
<p>当我们要说“我本来还以为……”时，在英文中就要说成I thought…。</p>
</blockquote>
<h2 id="口语用法四：根据上下文的语境灵活地使用一般过去时"><a href="#口语用法四：根据上下文的语境灵活地使用一般过去时" class="headerlink" title="口语用法四：根据上下文的语境灵活地使用一般过去时"></a>口语用法四：根据上下文的语境灵活地使用一般过去时</h2><p>在英语里，当两人见面刚认识，都会说“认识你很高兴”，用英语说成：<br>It is nice to meet you.<br>这里用的是一般现在时is。但是，在两人聊天结束后，在分手告别时还不会忘记说上一句“认识你很高兴”，这时英语就要用过去时态了：<br>It was nice meeting you.<br>或者说“和你聊天很开心”：<br>It was nice talking to you.<br>上面两句告别用语可以分别简化成“Nice meeting you.”和“Nice talking to you.”。</p>
<blockquote>
<p>告别时说“认识”用的是动名词meeting，而不是不定式to meet。</p>
</blockquote>
<p>A: Excuse me. I believe I <strong>__</strong>（be） here first. Do you mind waiting your turn?<br>B: Oh, sure. Sorry.<br>A: That’s OK.<br>根据语境，空格中我们应该用过去时这么说“I believe I was here first.”。<br>A：对不起，我想我比你先来这里的。你能排队等候吗？<br>B：哦，对不起。<br>A：没事。</p>
<h2 id="口语用法五：礼貌表达"><a href="#口语用法五：礼貌表达" class="headerlink" title="口语用法五：礼貌表达"></a>口语用法五：礼貌表达</h2><p>在口语中，一般过去时（也可用过去进行时）可以表示语气委婉，此时的过去时丝毫没有过去的意味，而谈的是现在的情况。<br>I wondered if you could help me. 我想知道你能否帮我。<br>Could you give me a hand? 你能帮我一下吗？<br>I was wondering if you could possibly lend me your car for this evening. 我想知道你今晚能否把车借给我用用。</p>

      
    </div>

    
    
    
      <footer class="post-footer">
        <div class="post-eof"></div>
      </footer>
  </article>
  
  
  

      
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-Hans">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2020/09/04/数据结构系列之栈-Java/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="Fengorz">
      <meta itemprop="description" content="A Quiet Departure.">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Feng's Blog">
    </span>
      <header class="post-header">
        <h2 class="post-title" itemprop="name headline">
          
            <a href="/2020/09/04/数据结构系列之栈-Java/" class="post-title-link" itemprop="url">数据结构系列之栈（Java）</a>
        </h2>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">Posted on</span>

              <time title="Created: 2020-09-04 15:48:50" itemprop="dateCreated datePublished" datetime="2020-09-04T15:48:50+08:00">2020-09-04</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">Edited on</span>
                <time title="Modified: 2020-09-06 21:08:56" itemprop="dateModified" datetime="2020-09-06T21:08:56+08:00">2020-09-06</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-folder"></i>
              </span>
              <span class="post-meta-item-text">In</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/数据结构/" itemprop="url" rel="index"><span itemprop="name">数据结构</span></a>
                </span>
            </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
          <p><a href="https://leetcode-cn.com/tag/stack/" target="_blank" rel="noopener">leetcode栈专题</a></p>
<h2 id="顺序栈的定义"><a href="#顺序栈的定义" class="headerlink" title="顺序栈的定义"></a>顺序栈的定义</h2><p>顺序栈栈和线性表很类似，可以认为栈是一种特殊的线性表，只是插入和删除只能允许在其一端进行，把允许操作的一端称为栈顶（Top），不可操作的一端称为栈底（Bottom），同时把插入元素的操作称为入栈(Push),删除元素的操作称为出栈(Pop)。若栈中没有任何元素，则称为空栈。</p>
<p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/iSJO68.png" alt></p>
<p>栈插入的元素将第一个被删除，栈也称为后进先出(Last In First Out,LIFO)或先进后出(First In Last Out FILO)的线性表。</p>
<h2 id="栈的操作"><a href="#栈的操作" class="headerlink" title="栈的操作"></a>栈的操作</h2><ul>
<li>peek（未删除只获取值）</li>
<li>push（入栈，更新栈顶Top指向）</li>
<li>Pop（出栈，删除并获取值，更新栈顶Top指向）</li>
</ul>
<h2 id="链式栈"><a href="#链式栈" class="headerlink" title="链式栈"></a>链式栈</h2><h3 id="空栈"><a href="#空栈" class="headerlink" title="空栈"></a>空栈</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/GGkvFd.png" alt></p>
<h3 id="非空栈"><a href="#非空栈" class="headerlink" title="非空栈"></a>非空栈</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/ghOgbZ.png" alt></p>
<h3 id="栈顶插入"><a href="#栈顶插入" class="headerlink" title="栈顶插入"></a>栈顶插入</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/vzjf3l.png" alt></p>
<h3 id="栈顶删除"><a href="#栈顶删除" class="headerlink" title="栈顶删除"></a>栈顶删除</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/lWtLTv.png" alt></p>
<blockquote>
<p>链式栈插入和删除依然只能在栈顶操作。</p>
</blockquote>
<h2 id="栈的应用"><a href="#栈的应用" class="headerlink" title="栈的应用"></a>栈的应用</h2><ul>
<li>符号匹配</li>
<li>HTML和XML文件中的标签匹配</li>
</ul>

      
    </div>

    
    
    
      <footer class="post-footer">
        <div class="post-eof"></div>
      </footer>
  </article>
  
  
  

      
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-Hans">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2020/03/29/股票理财/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="Fengorz">
      <meta itemprop="description" content="A Quiet Departure.">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Feng's Blog">
    </span>
      <header class="post-header">
        <h2 class="post-title" itemprop="name headline">
          
            <a href="/2020/03/29/股票理财/" class="post-title-link" itemprop="url">股票理财</a>
        </h2>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">Posted on</span>

              <time title="Created: 2020-03-29 18:25:57" itemprop="dateCreated datePublished" datetime="2020-03-29T18:25:57+08:00">2020-03-29</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">Edited on</span>
                <time title="Modified: 2020-09-05 22:10:32" itemprop="dateModified" datetime="2020-09-05T22:10:32+08:00">2020-09-05</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-folder"></i>
              </span>
              <span class="post-meta-item-text">In</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/理财/" itemprop="url" rel="index"><span itemprop="name">理财</span></a>
                </span>
            </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
          <blockquote>
<p>这篇笔记总结自李哥说理财的股票教程，以及其他网上知识点收集，只是我自己的个人复习笔记。</p>
</blockquote>
<h2 id="经济运作体系"><a href="#经济运作体系" class="headerlink" title="经济运作体系"></a>经济运作体系</h2><p><a href="https://youtu.be/rFV7wdEX-Mo" target="_blank" rel="noopener">经济机器是怎样运行的</a></p>
<h2 id="非农时间"><a href="#非农时间" class="headerlink" title="非农时间"></a>非农时间</h2><p>什么是非农，通常说的是美国每月公布的非农业就业人口数据，在金融市场里非农会导致数据的波荡，这个波荡的数据会引起投资者的骚动。<br>非农数据，包括美国非农就业率，非农业就业人数与失业率这三个数值，反映了美国非农业部门的就业状况的数据指标。这三个数据每个月第一个周五北京时间（冬令时：11月–3月）21:30，（夏令时：4月–10月）20:30发布，这些数据来源于美国劳工部劳动统计局。<br>非农分为大非农和小非农之分，大非农一般是在每月第一周的周五，主要是大盘。小非农一般在每月的一周的周三，主要是微盘。大非农的数据波动比较大。<br>简单说来，这两个数据都是直接反应现实的失业和就业情况，我们需要这样理解，如果就业率高失业率低说明美国经济良好，美元走强;反之则美元走弱。所有与美元挂钩的投资，皆会因此而剧烈波动。当我们根据行情做单的时候，要看清楚数据，然后结合相关技术面顺势而为。<br>可以说小非农是非农前的一次预期行情美国非农数据对黄金交易的影响。两者是相互关系的，从小非农指数就可以推测大非农指数，但是想要看得准，那就需要一定的基本功和时间的累积，不是一朝一夕就可以熟练的。</p>
<h3 id="非农数据与黄金的关系"><a href="#非农数据与黄金的关系" class="headerlink" title="非农数据与黄金的关系"></a>非农数据与黄金的关系</h3><blockquote>
<p>非农是官方统计的数据对于一个市场的企业就业情况，从而就可以判断美国的美元经济趋势，大非农是每个月的一周的周五晚八点准时公布，主要是公布美国劳工部公布的一组民间调查的就业率和失业率，也可以判断美国美元趋势。贵金属，黄金，白银，铜，这些全部都是以美元为风向标，美元涨贵金属就跌，美元跌贵金属就涨。 所以能明白美国美元经济是利好利空就能判断黄金的方向了</p>
</blockquote>
<h2 id="股票代码"><a href="#股票代码" class="headerlink" title="股票代码"></a>股票代码</h2><p><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/499PUR.png" alt></p>
<h2 id="选股大法"><a href="#选股大法" class="headerlink" title="选股大法"></a>选股大法</h2><ul>
<li>尽量选择ROE比较高，而PE比较低的。</li>
<li>个人理财的核心思想：平衡。</li>
<li>负债率太高的股票要尽量避开。</li>
<li>一般要求企业的现金流为正，更要求净现金流为正。</li>
<li>比如钢铁、煤炭这些原材料行业，还有船舶机械、金融证券都是强周期性行业，低谷时买入，高峰时卖出。（根据行业的周期性）</li>
<li>行业是否有成长性</li>
<li>生存环境是否激烈</li>
<li>经营模式是否简单</li>
<li>竞争分析</li>
<li>财务报表分析</li>
</ul>
<h2 id="股票（公司）指标"><a href="#股票（公司）指标" class="headerlink" title="股票（公司）指标"></a>股票（公司）指标</h2><h3 id="最重要的两个指标"><a href="#最重要的两个指标" class="headerlink" title="最重要的两个指标"></a>最重要的两个指标</h3><p>股市价格常被看作宏观经济的晴雨表，影响股票价格的因素可以有：</p>
<ul>
<li>利率（宏观经济指标）<br><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/w2x3x5.png" alt><br><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/Sao6RB.png" alt></li>
<li>通过膨胀（宏观经济指标），但是真正的牛市不应该是超发货币吹出来的一个虚胖的资金牛，应该伴随着实体经济的实质性增长，单纯撒钱可能股市也会涨，但是都是泡沫，一旦发钱速度慢了，不但股市崩盘，实体经济也会产生连锁危机。</li>
</ul>
<h4 id="PE（市盈率）"><a href="#PE（市盈率）" class="headerlink" title="PE（市盈率）"></a>PE（市盈率）</h4><p><strong><em>PE=每股市价/每股净收益，用来衡量股价是被高估还是低估了。</em></strong><br><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/gDif4M.png" alt><br><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/kTXEBi.png" alt><br><strong><em>PE的简单理解就是需要多少年才能收回我们的投资，10倍市盈率相当于投资的钱10年回本。</em></strong></p>
<h4 id="ROE（净资产收益率）"><a href="#ROE（净资产收益率）" class="headerlink" title="ROE（净资产收益率）"></a>ROE（净资产收益率）</h4><p><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/NEId1x.png" alt><br>这也是巴菲特最看重的指标，判断一个公司运营的好坏取决于它的净资产收益率高不高。<br>计算公司为<code>净利润/净资产=净利润/(总资产-总负债)</code><br><strong><em>ROE越高说明一家企业的赚钱能力越强，如果一家公司如果常年的ROE保持在15%以上，就是非常不错的了。</em></strong></p>
<blockquote>
<p>贵州茅台近年来的ROE平均都很高</p>
</blockquote>
<p><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/yzNpW3.png" alt><br><strong><em>ROE高的股票并不一定都涨的好，但是反之一般就会成立。</em></strong></p>
<h3 id="资产负债率"><a href="#资产负债率" class="headerlink" title="资产负债率"></a>资产负债率</h3><p>公司资产的两个来源：</p>
<ul>
<li>股东投入的钱（所有者权益/权益资本）。</li>
<li>向银行、金融机构等借的钱（负债/债务资本）。</li>
</ul>
<p><code>资产 = 所有者权益 + 负债</code><br>所以企业最佳盈利方式是在权益资本和债务资本之间寻求最佳平衡点。<br>假如一个企业的负债率为60%，就代表这个企业的资产60%是以债务的形式存在。<br>一般企业负债率：40%~60%<br>银行、证券公司、保险公司、房地产公司普遍负债率会高一些：</p>
<ul>
<li>银行：90%+</li>
<li>保险：80%+</li>
</ul>
<p>所以负债率只适合在同行业之间比较，负债率太高的股票要尽量避开。</p>
<h4 id="负债经营的好处"><a href="#负债经营的好处" class="headerlink" title="负债经营的好处"></a>负债经营的好处</h4><ul>
<li>放大经营杠杠</li>
<li>有减税的作用（利息税前抵扣）</li>
</ul>
<h3 id="现金流"><a href="#现金流" class="headerlink" title="现金流"></a>现金流</h3><p>利润好比食物，不吃饭还可以活几天，但是现金流就像是血液一样，大出血的话，可能几分钟都撑不过去。</p>
<h4 id="企业活动"><a href="#企业活动" class="headerlink" title="企业活动"></a>企业活动</h4><p><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/vXPOJ9.png" alt><br>每种企业活动都伴随着现金的流入和流出。</p>
<h5 id="净现金流"><a href="#净现金流" class="headerlink" title="净现金流"></a>净现金流</h5><p>一段时间内的企业活动的现金流入和流出的差额叫净现金流。</p>
<p>一般要求企业的现金流为正，更要求净现金流为正。企业可以没有利润，但是不能没有现金流。<br>现行的企业会计制度以<strong><em>权责发生制</em></strong>为基础，可能会出现收入和利润已经体现在财报中了，但是钱不能及时到账，甚至变成坏账，财报可能缺乏实时真实性。</p>
<h3 id="行业分析"><a href="#行业分析" class="headerlink" title="行业分析"></a>行业分析</h3><p><img src="https://cdn.jsdelivr.net/gh/coding-by-feng/oss@master/uPic/BIJHIz.png" alt></p>
<h4 id="行业是否有周期性"><a href="#行业是否有周期性" class="headerlink" title="行业是否有周期性"></a>行业是否有周期性</h4><ul>
<li>比如钢铁、煤炭这些原材料行业，还有船舶机械、金融证券都是强周期性行业，低谷时买入，高峰时卖出。</li>
<li>比如食品、家电、娱乐、医药，周期性不是很明显。</li>
</ul>
<h4 id="行业是否有成长性"><a href="#行业是否有成长性" class="headerlink" title="行业是否有成长性"></a>行业是否有成长性</h4><p>如果市场整体饱和，整个行业如法实现以前的高速增长，产能过剩，供过于求，行业生存环境会越来越严峻。</p>
<h4 id="生存环境是否激烈"><a href="#生存环境是否激烈" class="headerlink" title="生存环境是否激烈"></a>生存环境是否激烈</h4><p>恶性竞争可能导致绝大部分企业陷入亏损泥潭，众多品牌混战，打价格战，杀敌一千，自损八百，利润被压缩。</p>
<h4 id="经营模式是否简单"><a href="#经营模式是否简单" class="headerlink" title="经营模式是否简单"></a>经营模式是否简单</h4><p>有些看不懂的复杂生意模式尽量不碰，越复杂，猫腻可能越多，普通人难以摸透。</p>
<h3 id="竞争分析"><a href="#竞争分析" class="headerlink" title="竞争分析"></a>竞争分析</h3><h4 id="企业与客户的关系"><a href="#企业与客户的关系" class="headerlink" title="企业与客户的关系"></a>企业与客户的关系</h4><h5 id="卖方市场（企业竞争力弱）"><a href="#卖方市场（企业竞争力弱）" class="headerlink" title="卖方市场（企业竞争力弱）"></a>卖方市场（企业竞争力弱）</h5><p>计划经济时代就是一个十足的卖方市场，当时的中国经济是长期处于供不应求的状态。</p>
<h5 id="买方市场"><a href="#买方市场" class="headerlink" title="买方市场"></a>买方市场</h5><p>随着中国的市场化改革和生产力的快速提高，今天市场上大部分行业都已经产能过剩了，就变成了典型的买方市场。<br>在买方市场中，卖方一般只能两种手段：</p>
<ul>
<li>通过差异化竞争来获取超额利润。</li>
<li>打折。</li>
</ul>
<h4 id="企业与上游供应商的关系"><a href="#企业与上游供应商的关系" class="headerlink" title="企业与上游供应商的关系"></a>企业与上游供应商的关系</h4><p>这种关系和客户关系有点类似，也有处于”买方”的企业，比如沃尔玛、亚马逊，这种接近于客户端的名下有大量客户资源的公司，其在市场中就扮演着买方的角色，品牌效应强大，对上游供应商更加有话语权，更容易占用上游的资金，延迟货款支付，相当于在上游免息贷款了。</p>
<h4 id="企业是否具有核心竞争力"><a href="#企业是否具有核心竞争力" class="headerlink" title="企业是否具有核心竞争力"></a>企业是否具有核心竞争力</h4><p><strong><em>核心竞争力就是只有我有，别人基本没有的东西，或者只有我才是做得最好的。这就是巴菲特所说的护城河理论，其实就是企业的核心技术。</em></strong><br><strong><em>护城河越深，企业的优势就越明显。</em></strong></p>
<p>护城河可以有：</p>
<ul>
<li>特许经营权（像中国的中石油和中石化，这些个资源垄断型企业）。</li>
<li>多元化发展（适当的多元化是有利于提升企业的整体竞争力，扩大市场空间，但是物极必反，比如乐视）。</li>
</ul>
<h4 id="公司的领导层（这个一般人也了解不到）"><a href="#公司的领导层（这个一般人也了解不到）" class="headerlink" title="公司的领导层（这个一般人也了解不到）"></a>公司的领导层（这个一般人也了解不到）</h4><p>关键判断领导团队、管理团队是否具备以下几个优秀的品质：</p>
<ul>
<li>诚信（把股东的利润放在第一位，而不是高位套现，融资圈钱）</li>
<li>敬业（企业不应该做太多不关紧要的内耗）</li>
<li>社会责任感</li>
</ul>
<h3 id="财务报表"><a href="#财务报表" class="headerlink" title="财务报表"></a>财务报表</h3><p>财报是了解企业的信息窗口，普通投资者能接触到的最有价值的投资材料。<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/XA9yLG.png" alt></p>
<h4 id="资产"><a href="#资产" class="headerlink" title="资产"></a>资产</h4><p>企业能够控制的预期；<br>会给企业带来收益的东西；</p>
<blockquote>
<p>就是钱以及能够产生钱的那些东西。</p>
</blockquote>
<h5 id="流动性资产"><a href="#流动性资产" class="headerlink" title="流动性资产"></a>流动性资产</h5><p>现金或者变现能力较强的资产：货币基金（资金）、应收账款、存货。</p>
<h5 id="非流动性资产"><a href="#非流动性资产" class="headerlink" title="非流动性资产"></a>非流动性资产</h5><p>短期内不打算变现，或者变现能力较差的资产：比如一些固定资产。</p>
<blockquote>
<p>货币基金（资金）多说明企业的经营效益好，可以间接表明该企业的市场竞争力强大。<br>应收账款最好是越少越好，太多的应收账款说明自由资金已被客户过多占用，还可能形成坏账。</p>
</blockquote>

      
    </div>

    
    
    
      <footer class="post-footer">
        <div class="post-eof"></div>
      </footer>
  </article>
  
  
  

      
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-Hans">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2019/04/28/数据结构系列之链表-Java/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="Fengorz">
      <meta itemprop="description" content="A Quiet Departure.">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Feng's Blog">
    </span>
      <header class="post-header">
        <h2 class="post-title" itemprop="name headline">
          
            <a href="/2019/04/28/数据结构系列之链表-Java/" class="post-title-link" itemprop="url">数据结构系列之链表（Java）</a>
        </h2>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">Posted on</span>

              <time title="Created: 2019-04-28 18:22:07" itemprop="dateCreated datePublished" datetime="2019-04-28T18:22:07+08:00">2019-04-28</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">Edited on</span>
                <time title="Modified: 2020-09-04 16:54:29" itemprop="dateModified" datetime="2020-09-04T16:54:29+08:00">2020-09-04</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-folder"></i>
              </span>
              <span class="post-meta-item-text">In</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/数据结构/" itemprop="url" rel="index"><span itemprop="name">数据结构</span></a>
                </span>
            </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
          <p><a href="https://leetcode-cn.com/tag/linked-list/" target="_blank" rel="noopener">leetcode链表专题</a></p>
<h2 id="链表分别都对应了那些Java类？"><a href="#链表分别都对应了那些Java类？" class="headerlink" title="链表分别都对应了那些Java类？"></a>链表分别都对应了那些Java类？</h2><ul>
<li>java.util.ArrayList</li>
<li>java.util.LinkedList</li>
<li>java.util.concurrent.CopyOnWriteArrayList</li>
</ul>
<h2 id="单向链表"><a href="#单向链表" class="headerlink" title="单向链表"></a>单向链表</h2><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/X2alLM.png" alt><br>单向链表包含两个域：</p>
<ul>
<li>信息域（上图的data，存放结点数据）</li>
<li>指针域（上图的next，链接指向列表中的下一个结点，而最后一个结点则指向一个空值）</li>
</ul>
<p><strong><em>每个结点只有一个指针的链表也叫单向链表，或者单链表。</em></strong></p>
<h3 id="在链表表头插入新结点"><a href="#在链表表头插入新结点" class="headerlink" title="在链表表头插入新结点"></a>在链表表头插入新结点</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/AbY5Jl.png" alt><br>此时只需要变更Head的指向。</p>
<h3 id="在链表中间插入新结点"><a href="#在链表中间插入新结点" class="headerlink" title="在链表中间插入新结点"></a>在链表中间插入新结点</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/zFgr4G.png" alt><br>此时需要变更front node的next值，将其指向new node，new node的next值指向next node。</p>
<h3 id="带头结点和尾结点的单链表"><a href="#带头结点和尾结点的单链表" class="headerlink" title="带头结点和尾结点的单链表"></a>带头结点和尾结点的单链表</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/rlUd5C.png" alt><br>在不带头结点的单链表中，插入和删除都需要区分操作的结点下标，在链表表头插入新结点与在链表中间插入新结点是不同的。<br>而在带头结点的单链表中，就不再需要做这样的区分。<br>在带头结点的链表表头插入新结点：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/odYgoS.png" alt><br>在带头结点的链表中间插入新结点：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/hW9eHt.png" alt><br>上面操作都是变更front node的next值，将其指向new node，new node的next值指向next node。<br>删除结点同理。</p>
<h4 id="尾部插入"><a href="#尾部插入" class="headerlink" title="尾部插入"></a>尾部插入</h4><p>为了使链表在尾部插入时也和上面的头部、中间插入一直，以及达到更加高效，可在链表增加一个尾部指向的尾结点，这样一来，在尾部添加结点时，只要通过尾结点直接操作即可，无需从表头遍历到表尾。<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/PWjUfy.png" alt><br>如上图，通过尾结点可能快速定位到front node，然后操作依然是变更front node的next值，将其指向new node，new node的next值指向next node（尾结点）。</p>
<blockquote>
<p>这样一来，头部、中间和尾部插入就可以视为同一种操作逻辑了。</p>
</blockquote>
<h3 id="循环单链表"><a href="#循环单链表" class="headerlink" title="循环单链表"></a>循环单链表</h3><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/GW4slV.png" alt><br>循环链表在实现遍历的时候要注意避免死循环，判断遍历到尾结点即可停止。</p>
<h3 id="单链表-vs-顺序表"><a href="#单链表-vs-顺序表" class="headerlink" title="单链表 vs 顺序表"></a>单链表 vs 顺序表</h3><p>由于不必须按顺序存储，链表在插入的时候可以达到 O(1) 的复杂度，比另一种线性表 —— 顺序表快得多，但是查找一个结点或者访问特定编号的结点则需要 O(n) 的时间，而顺序表相应的时间复杂度分别是 O(log n) 和 O(1)。<br>使用链表结构可以克服数组链表需要预先知道数据大小的缺点，链表结构可以充分利用计算机内存空间，实现灵活的内存动态管理。但是链表失去了数组随机读取的优点，同时链表由于增加了结点的指针域，空间开销比较大。<br>在计算机科学中，链表作为一种基础的数据结构可以用来生成其它类型的数据结构。链表通常由一连串结点组成，每个结点包含任意的实例数据（data fields）和一或两个用来指向上一个/或下一个结点的位置的链接（links）。链表最明显的好处就是，常规数组排列关联项目的方式可能不同于这些数据项目在记忆体或磁盘上顺序，数据的访问往往要在不同的排列顺序中转换。而链表是一种自我指示数据类型，因为它包含指向另一个相同类型的数据的指针（链接）。</p>
<blockquote>
<p>来源：<a href="https://leetcode-cn.com/tag/linked-list/" target="_blank" rel="noopener">https://leetcode-cn.com/tag/linked-list/</a></p>
</blockquote>
<h3 id="单链表的弊端"><a href="#单链表的弊端" class="headerlink" title="单链表的弊端"></a>单链表的弊端</h3><p>指针域中没有前驱指针，无法知道前驱结点，假如指针this指向某个结点，想要在this的前面插入一个结点或删除this所在结点时，必须从链表的表头遍历至this的前一个结点再执行插入或者删除操作，这种情况使用双链表就更为高效了。</p>
<h2 id="双向链表"><a href="#双向链表" class="headerlink" title="双向链表"></a>双向链表</h2><p><img src="https://gitee.com/fengorz/oss/raw/master/uPic/Y1Zb9A.png" alt></p>
<ul>
<li>信息域（存放结点数据）</li>
<li>指针域（有两个链接）<ul>
<li>前链接：指向前一个结点，当此“前链接”为第一个时，指向空值或者空列表；</li>
<li>后链接：指向下一个结点，当此“后连接”为最后一个时，指向空值或者空列表；</li>
</ul>
</li>
</ul>
<p>双向链表也叫双链表。双链表可以从任何一个结点访问前一个结点，当然也可以访问后一个结点，</p>
<h3 id="java-util-LinkedList双链表的实现逻辑"><a href="#java-util-LinkedList双链表的实现逻辑" class="headerlink" title="java.util.LinkedList双链表的实现逻辑"></a>java.util.LinkedList双链表的实现逻辑</h3><blockquote>
<p>分析java.util.LinkedList的源码可以发现有成员变量<code>transient Node&lt;E&gt; first;</code>和<code>transient Node&lt;E&gt; last;</code>。</p>
</blockquote>
<p>初始化状态：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/gNi1Bf.png" alt><br>java.util.LinkedList插入数据的代码：<br><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br></pre></td><td class="code"><pre><span class="line">private static class Node&lt;E&gt; &#123;</span><br><span class="line">    E item;</span><br><span class="line">    Node&lt;E&gt; next;</span><br><span class="line">    Node&lt;E&gt; prev;</span><br><span class="line"></span><br><span class="line">    Node(Node&lt;E&gt; prev, E element, Node&lt;E&gt; next) &#123;</span><br><span class="line">        this.item = element;</span><br><span class="line">        this.next = next;</span><br><span class="line">        this.prev = prev;</span><br><span class="line">    &#125;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">public boolean add(E e) &#123;</span><br><span class="line">    linkLast(e);</span><br><span class="line">    return true;</span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line">void linkLast(E e) &#123;</span><br><span class="line">    final Node&lt;E&gt; l = last;</span><br><span class="line">    final Node&lt;E&gt; newNode = new Node&lt;&gt;(l, e, null);</span><br><span class="line">    last = newNode;</span><br><span class="line">    if (l == null)</span><br><span class="line">        first = newNode;</span><br><span class="line">    else</span><br><span class="line">        l.next = newNode;</span><br><span class="line">    size++;</span><br><span class="line">    modCount++;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure></p>
<p>可见空双链表插入第一个结点时，判断尾结点是否为空，如果为空是在first头结点插入，否则是插入到尾部结点之后，如图：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/zhs4xu.png" alt><br>当再次插入新结点时，如图：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/q0mXuS.png" alt></p>
<h2 id="循环双链表"><a href="#循环双链表" class="headerlink" title="循环双链表"></a>循环双链表</h2><p>空循环双链表：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/PJEkBp.png" alt><br>插入新结点：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/eyY1Zv.png" alt></p>
<h2 id="排序双链表"><a href="#排序双链表" class="headerlink" title="排序双链表"></a>排序双链表</h2><p>元素对象可以实现Comoarable接口，通过<code>compareTo</code>方法在插入元素的时候做对比。</p>
<h2 id="静态链表"><a href="#静态链表" class="headerlink" title="静态链表"></a>静态链表</h2><p>分配一整片连续的内存空间，各个结点集中安置。如图（图片来源王道考研）：<br><img src="https://gitee.com/fengorz/oss/raw/master/uPic/X64NBw.png" alt></p>
<blockquote>
<p>静态链表内部也是要基于数组来实现。</p>
</blockquote>
<h2 id="链表的利与弊"><a href="#链表的利与弊" class="headerlink" title="链表的利与弊"></a>链表的利与弊</h2><p>使用链表的好处：</p>
<ul>
<li>链表在初始化时仅需要分配一个元素的存储空间，在内存分配上可以是不连续的内存，也不需要做任何内存复制和重新分配的操作，在访问单个元素的时间开销会更少。</li>
<li>链表在插入和删除结点方面相较于顺序表是十分高效的，因此链表比较适合那些插入删除频繁的场景使用。</li>
</ul>

      
    </div>

    
    
    
      <footer class="post-footer">
        <div class="post-eof"></div>
      </footer>
  </article>
  
  
  

      
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-Hans">
    <link itemprop="mainEntityOfPage" href="http://yoursite.com/2020/09/02/数据结构系列之哈希表-Java/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="Fengorz">
      <meta itemprop="description" content="A Quiet Departure.">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="Feng's Blog">
    </span>
      <header class="post-header">
        <h2 class="post-title" itemprop="name headline">
          
            <a href="/2020/09/02/数据结构系列之哈希表-Java/" class="post-title-link" itemprop="url">数据结构系列之哈希表（Java）</a>
        </h2>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-calendar"></i>
              </span>
              <span class="post-meta-item-text">Posted on</span>

              <time title="Created: 2020-09-02 16:03:19" itemprop="dateCreated datePublished" datetime="2020-09-02T16:03:19+08:00">2020-09-02</time>
            </span>
              <span class="post-meta-item">
                <span class="post-meta-item-icon">
                  <i class="far fa-calendar-check"></i>
                </span>
                <span class="post-meta-item-text">Edited on</span>
                <time title="Modified: 2020-09-04 10:24:28" itemprop="dateModified" datetime="2020-09-04T10:24:28+08:00">2020-09-04</time>
              </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="far fa-folder"></i>
              </span>
              <span class="post-meta-item-text">In</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/数据结构/" itemprop="url" rel="index"><span itemprop="name">数据结构</span></a>
                </span>
            </span>

          

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
          
      
    </div>

    
    
    
      <footer class="post-footer">
        <div class="post-eof"></div>
      </footer>
  </article>
  
  
  


  
  <nav class="pagination">
    <a class="extend prev" rel="prev" href="/page/5/"><i class="fa fa-angle-left" aria-label="Previous page"></i></a><a class="page-number" href="/">1</a><span class="space">&hellip;</span><a class="page-number" href="/page/5/">5</a><span class="page-number current">6</span><a class="page-number" href="/page/7/">7</a><span class="space">&hellip;</span><a class="page-number" href="/page/25/">25</a><a class="extend next" rel="next" href="/page/7/"><i class="fa fa-angle-right" aria-label="Next page"></i></a>
  </nav>



          </div>
          

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          Table of Contents
        </li>
        <li class="sidebar-nav-overview">
          Overview
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <p class="site-author-name" itemprop="name">Fengorz</p>
  <div class="site-description" itemprop="description">A Quiet Departure.</div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">125</span>
          <span class="site-state-item-name">posts</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
          
        <span class="site-state-item-count">68</span>
        <span class="site-state-item-name">categories</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">87</span>
        <span class="site-state-item-name">tags</span></a>
      </div>
  </nav>
</div>



      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2020</span>
  <span class="with-love">
    <i class="fa fa-heart"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">Fengorz</span>
</div>
  <div class="powered-by">Powered by <a href="https://hexo.io" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://theme-next.org" class="theme-link" rel="noopener" target="_blank">NexT.Gemini</a>
  </div>

        








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>
<script src="/js/utils.js"></script><script src="/js/motion.js"></script>
<script src="/js/schemes/pisces.js"></script>
<script src="/js/next-boot.js"></script>



  















  

  

</body>
</html>
